// permissionService.js

import request from '@/utils/request'

const baseUri = '/permission'

const permissionService = {


  
  /**
   * 根据角色id查询对应的权限
   * @param {number} roleId - 角色ID
   * @returns {Promise} - 请求返回的 Promise 对象
   */
  findPermissionByRoleId(roleId) {
    return request({
      url: `${baseUri}/findPermissionByRoleId`,
      method: 'get',
      params: { roleId }
    })
  },

  /**
   * 列表查询权限
   * @param {Object} params - 查询参数
   * @returns {Promise} - 请求返回的 Promise 对象
   */
  list: (searchMap) => {
    return request({
      url: `${baseUri}/list`,
      method: 'post',
      data: searchMap
    })
  },

  /**
   * 根据ID查询权限
   * @param {number} id - 权限ID
   * @returns {Promise} - 请求返回的 Promise 对象
   */
  find(id) {
    return request({
      url: `${baseUri}/find`,
      method: 'get',
      params: { id }
    })
  },

  /**
   * 查询所有权限
   * @returns {Promise} - 请求返回的 Promise 对象
   */
  findAll() {
    return request({
      url: `${baseUri}/findAll`,
      method: 'get'
    })
  },

  /**
   * 添加权限
   * @param {Object} permission - 权限对象
   * @returns {Promise} - 请求返回的 Promise 对象
   */
  add(permission) {
    return request({
      url: `${baseUri}/add`,
      method: 'post',
      data: permission
    })
  },

  /**
   * 更新权限
   * @param {Object} permission - 权限对象
   * @returns {Promise} - 请求返回的 Promise 对象
   */
  update(id,permission) {
    
      //判断是否有ID，没有就是新增
      if(id===null || id===''){
        return this.add(permission)
      }
    return request({
      url: `${baseUri}/update`,
      method: 'post',
      data: permission
    })
  },

  /**
   * 删除权限
   * @param {number} id - 权限ID
   * @returns {Promise} - 请求返回的 Promise 对象
   */
  remove(id) {
    return request({
      url: `${baseUri}/delete`,
      method: 'get',
      params: { id }
    })
  },

  /**
   * 批量删除权限
   * @param {Object} batchDeleteDto - 批量删除对象
   * @returns {Promise} - 请求返回的 Promise 对象
   */
  batchRemove(batchDeleteDto) {
    return request({
      url: `${baseUri}/batchRemove`,
      method: 'post',
      data: batchDeleteDto
    })
  }
}

export default permissionService;